<template>
  <view class="container">
    <text>请选择通知铃声</text>
    <button @click="openSystemRingtonePicker">打开系统铃声选择器</button>
  </view>
</template>

<script setup>
  import {
    ref
  } from 'vue';

  const selectedRingtone = ref(null);

  /**
   * 打开系统铃声选择器
   */
  function openSystemRingtonePicker() {
    if (plus.os.name !== 'Android') {
      uni.showToast({
        title: '仅支持 Android 系统',
        icon: 'none'
      });
      return;
    }

    try {
      const Intent = plus.android.importClass('android.content.Intent');
      const RingtoneManager = plus.android.importClass('android.media.RingtoneManager');

      const intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "请选择通知铃声");
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, null); // 初始无选择

      const activity = plus.android.runtimeMainActivity();
      activity.startActivityForResult(intent, 1001); // requestCode = 1001
    } catch (e) {
      console.error('打开铃声选择器失败:', e);
      uni.showToast({
        title: '系统不支持该功能',
        icon: 'none'
      });
    }
  }

  /**
   * 处理铃声选择结果（需在 App.vue 中监听 onActivityResult）
   */
  function handleRingtoneResult(uri) {
    if (uri) {
      uni.setStorageSync('notification_ringtone', uri);
      uni.showToast({
        title: '铃声设置成功',
        icon: 'success'
      });
    } else {
      uni.showToast({
        title: '未选择铃声',
        icon: 'none'
      });
    }
  }
</script>

<style>
  .container {
    padding: 20px;
    text-align: center;
  }
</style>